#include"lars_reactor.h"
#include"lars.pb.h"

// 主动给dns发的消息
void on_client_build(net_connection *conn, void *args){
    // 1.组装一个proto消息
    lars::ReportStatusRequest requst;

    // 2.设置消息信息
    requst.set_modid(1);
    requst.set_cmdid(1);
    requst.set_caller(127);
    requst.set_ts(time(NULL));

    // 2.1.组装主机消息
    for(int i=0; i<3; i++){
        lars::HostCallResult host;
        host.set_ip(rand());
        host.set_port(i+1);
        host.set_succ(100);
        host.set_err(20);
        host.set_overload(false);

        requst.add_results()->CopyFrom(host);
    }

    // 3.将proto转成字符串
    std::string requstString;
    requst.SerializeToString(&requstString);

    // 发送数据包
    conn->send_message(requstString.c_str(), requstString.size(), lars::ID_ReportStatusRequest);
}


int main(int argc, char** argv){
    event_loop loop;

    // 创建一个客户端
    tcp_client client(&loop, "127.0.0.1", 9999);

    client.set_conn_start(on_client_build);

    loop.event_process();


    return 0;
}